/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Generation.Production;

import EA_Model.IEC61970.Core.Equipment;

import EA_Model.IEC61970.Domain.ActivePower;
import EA_Model.IEC61970.Domain.ActivePowerChangeRate;
import EA_Model.IEC61970.Domain.Money;
import EA_Model.IEC61970.Domain.PU;
import EA_Model.IEC61970.Domain.PerCent;
import EA_Model.IEC61970.Domain.Seconds;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Generating Unit</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getAllocSpinResP <em>Alloc Spin Res P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getAutoCntrlMarginP <em>Auto Cntrl Margin P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getBaseP <em>Base P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlDeadband <em>Control Deadband</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlPulseHigh <em>Control Pulse High</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlPulseLow <em>Control Pulse Low</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlResponseRate <em>Control Response Rate</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getDispReserveFlag <em>Disp Reserve Flag</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getEfficiency <em>Efficiency</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getEnergyMinP <em>Energy Min P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getFastStartFlag <em>Fast Start Flag</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getFuelPriority <em>Fuel Priority</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenControlMode <em>Gen Control Mode</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenControlSource <em>Gen Control Source</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenOperatingMode <em>Gen Operating Mode</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGovernorMPL <em>Governor MPL</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGovernorSCD <em>Governor SCD</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getHighControlLimit <em>High Control Limit</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getInitialP <em>Initial P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLongPF <em>Long PF</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLowControlLimit <em>Low Control Limit</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLowerRampRate <em>Lower Ramp Rate</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaxEconomicP <em>Max Economic P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaximumAllowableSpinningReserve <em>Maximum Allowable Spinning Reserve</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaxOperatingP <em>Max Operating P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinEconomicP <em>Min Economic P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinimumOffTime <em>Minimum Off Time</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinOperatingP <em>Min Operating P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getModelDetail <em>Model Detail</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getNominalP <em>Nominal P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getNormalPF <em>Normal PF</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getPenaltyFactor <em>Penalty Factor</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRaiseRampRate <em>Raise Ramp Rate</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedGrossMaxP <em>Rated Gross Max P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedGrossMinP <em>Rated Gross Min P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedNetMaxP <em>Rated Net Max P</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getShortPF <em>Short PF</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getSpinReserveRamp <em>Spin Reserve Ramp</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStartupCost <em>Startup Cost</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStartupTime <em>Startup Time</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStepChange <em>Step Change</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getTieLinePF <em>Tie Line PF</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getVariableCost <em>Variable Cost</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit()
 * @model
 * @generated
 */
public interface GeneratingUnit extends Equipment {
	/**
	 * Returns the value of the '<em><b>Alloc Spin Res P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Alloc Spin Res P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Alloc Spin Res P</em>' reference.
	 * @see #setAllocSpinResP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_AllocSpinResP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getAllocSpinResP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getAllocSpinResP <em>Alloc Spin Res P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Alloc Spin Res P</em>' reference.
	 * @see #getAllocSpinResP()
	 * @generated
	 */
	void setAllocSpinResP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Auto Cntrl Margin P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Auto Cntrl Margin P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Auto Cntrl Margin P</em>' reference.
	 * @see #setAutoCntrlMarginP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_AutoCntrlMarginP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getAutoCntrlMarginP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getAutoCntrlMarginP <em>Auto Cntrl Margin P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Auto Cntrl Margin P</em>' reference.
	 * @see #getAutoCntrlMarginP()
	 * @generated
	 */
	void setAutoCntrlMarginP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Base P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Base P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Base P</em>' reference.
	 * @see #setBaseP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_BaseP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getBaseP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getBaseP <em>Base P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Base P</em>' reference.
	 * @see #getBaseP()
	 * @generated
	 */
	void setBaseP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Control Deadband</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Control Deadband</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Control Deadband</em>' reference.
	 * @see #setControlDeadband(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ControlDeadband()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getControlDeadband();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlDeadband <em>Control Deadband</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Control Deadband</em>' reference.
	 * @see #getControlDeadband()
	 * @generated
	 */
	void setControlDeadband(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Control Pulse High</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Control Pulse High</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Control Pulse High</em>' reference.
	 * @see #setControlPulseHigh(Seconds)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ControlPulseHigh()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getControlPulseHigh();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlPulseHigh <em>Control Pulse High</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Control Pulse High</em>' reference.
	 * @see #getControlPulseHigh()
	 * @generated
	 */
	void setControlPulseHigh(Seconds value);

	/**
	 * Returns the value of the '<em><b>Control Pulse Low</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Control Pulse Low</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Control Pulse Low</em>' reference.
	 * @see #setControlPulseLow(Seconds)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ControlPulseLow()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getControlPulseLow();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlPulseLow <em>Control Pulse Low</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Control Pulse Low</em>' reference.
	 * @see #getControlPulseLow()
	 * @generated
	 */
	void setControlPulseLow(Seconds value);

	/**
	 * Returns the value of the '<em><b>Control Response Rate</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Control Response Rate</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Control Response Rate</em>' reference.
	 * @see #setControlResponseRate(ActivePowerChangeRate)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ControlResponseRate()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePowerChangeRate getControlResponseRate();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getControlResponseRate <em>Control Response Rate</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Control Response Rate</em>' reference.
	 * @see #getControlResponseRate()
	 * @generated
	 */
	void setControlResponseRate(ActivePowerChangeRate value);

	/**
	 * Returns the value of the '<em><b>Disp Reserve Flag</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Disp Reserve Flag</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Disp Reserve Flag</em>' reference.
	 * @see #setDispReserveFlag(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_DispReserveFlag()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getDispReserveFlag();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getDispReserveFlag <em>Disp Reserve Flag</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Disp Reserve Flag</em>' reference.
	 * @see #getDispReserveFlag()
	 * @generated
	 */
	void setDispReserveFlag(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Efficiency</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Efficiency</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Efficiency</em>' reference.
	 * @see #setEfficiency(PU)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_Efficiency()
	 * @model ordered="false"
	 * @generated
	 */
	PU getEfficiency();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getEfficiency <em>Efficiency</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Efficiency</em>' reference.
	 * @see #getEfficiency()
	 * @generated
	 */
	void setEfficiency(PU value);

	/**
	 * Returns the value of the '<em><b>Energy Min P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Energy Min P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Energy Min P</em>' reference.
	 * @see #setEnergyMinP(HeatRate)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_EnergyMinP()
	 * @model ordered="false"
	 * @generated
	 */
	HeatRate getEnergyMinP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getEnergyMinP <em>Energy Min P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Energy Min P</em>' reference.
	 * @see #getEnergyMinP()
	 * @generated
	 */
	void setEnergyMinP(HeatRate value);

	/**
	 * Returns the value of the '<em><b>Fast Start Flag</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Fast Start Flag</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Fast Start Flag</em>' reference.
	 * @see #setFastStartFlag(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_FastStartFlag()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getFastStartFlag();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getFastStartFlag <em>Fast Start Flag</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Fast Start Flag</em>' reference.
	 * @see #getFastStartFlag()
	 * @generated
	 */
	void setFastStartFlag(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Fuel Priority</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Fuel Priority</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Fuel Priority</em>' reference.
	 * @see #setFuelPriority(EA_Model.IEC61970.Domain.Integer)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_FuelPriority()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Integer getFuelPriority();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getFuelPriority <em>Fuel Priority</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Fuel Priority</em>' reference.
	 * @see #getFuelPriority()
	 * @generated
	 */
	void setFuelPriority(EA_Model.IEC61970.Domain.Integer value);

	/**
	 * Returns the value of the '<em><b>Gen Control Mode</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Generation.Production.GeneratorControlMode}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Gen Control Mode</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Gen Control Mode</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorControlMode
	 * @see #setGenControlMode(GeneratorControlMode)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_GenControlMode()
	 * @model ordered="false"
	 * @generated
	 */
	GeneratorControlMode getGenControlMode();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenControlMode <em>Gen Control Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Gen Control Mode</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorControlMode
	 * @see #getGenControlMode()
	 * @generated
	 */
	void setGenControlMode(GeneratorControlMode value);

	/**
	 * Returns the value of the '<em><b>Gen Control Source</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Generation.Production.GeneratorControlSource}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Gen Control Source</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Gen Control Source</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorControlSource
	 * @see #setGenControlSource(GeneratorControlSource)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_GenControlSource()
	 * @model ordered="false"
	 * @generated
	 */
	GeneratorControlSource getGenControlSource();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenControlSource <em>Gen Control Source</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Gen Control Source</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorControlSource
	 * @see #getGenControlSource()
	 * @generated
	 */
	void setGenControlSource(GeneratorControlSource value);

	/**
	 * Returns the value of the '<em><b>Gen Operating Mode</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Generation.Production.GeneratorOperatingMode}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Gen Operating Mode</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Gen Operating Mode</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorOperatingMode
	 * @see #setGenOperatingMode(GeneratorOperatingMode)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_GenOperatingMode()
	 * @model ordered="false"
	 * @generated
	 */
	GeneratorOperatingMode getGenOperatingMode();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGenOperatingMode <em>Gen Operating Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Gen Operating Mode</em>' attribute.
	 * @see EA_Model.IEC61970.Generation.Production.GeneratorOperatingMode
	 * @see #getGenOperatingMode()
	 * @generated
	 */
	void setGenOperatingMode(GeneratorOperatingMode value);

	/**
	 * Returns the value of the '<em><b>Governor MPL</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Governor MPL</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Governor MPL</em>' reference.
	 * @see #setGovernorMPL(PU)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_GovernorMPL()
	 * @model ordered="false"
	 * @generated
	 */
	PU getGovernorMPL();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGovernorMPL <em>Governor MPL</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Governor MPL</em>' reference.
	 * @see #getGovernorMPL()
	 * @generated
	 */
	void setGovernorMPL(PU value);

	/**
	 * Returns the value of the '<em><b>Governor SCD</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Governor SCD</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Governor SCD</em>' reference.
	 * @see #setGovernorSCD(PerCent)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_GovernorSCD()
	 * @model ordered="false"
	 * @generated
	 */
	PerCent getGovernorSCD();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getGovernorSCD <em>Governor SCD</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Governor SCD</em>' reference.
	 * @see #getGovernorSCD()
	 * @generated
	 */
	void setGovernorSCD(PerCent value);

	/**
	 * Returns the value of the '<em><b>High Control Limit</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>High Control Limit</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>High Control Limit</em>' reference.
	 * @see #setHighControlLimit(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_HighControlLimit()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getHighControlLimit();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getHighControlLimit <em>High Control Limit</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>High Control Limit</em>' reference.
	 * @see #getHighControlLimit()
	 * @generated
	 */
	void setHighControlLimit(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Initial P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Initial P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Initial P</em>' reference.
	 * @see #setInitialP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_InitialP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getInitialP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getInitialP <em>Initial P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Initial P</em>' reference.
	 * @see #getInitialP()
	 * @generated
	 */
	void setInitialP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Long PF</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Long PF</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Long PF</em>' reference.
	 * @see #setLongPF(EA_Model.IEC61970.Domain.Float)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_LongPF()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Float getLongPF();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLongPF <em>Long PF</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Long PF</em>' reference.
	 * @see #getLongPF()
	 * @generated
	 */
	void setLongPF(EA_Model.IEC61970.Domain.Float value);

	/**
	 * Returns the value of the '<em><b>Low Control Limit</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Low Control Limit</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Low Control Limit</em>' reference.
	 * @see #setLowControlLimit(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_LowControlLimit()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getLowControlLimit();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLowControlLimit <em>Low Control Limit</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Low Control Limit</em>' reference.
	 * @see #getLowControlLimit()
	 * @generated
	 */
	void setLowControlLimit(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Lower Ramp Rate</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Lower Ramp Rate</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Lower Ramp Rate</em>' reference.
	 * @see #setLowerRampRate(ActivePowerChangeRate)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_LowerRampRate()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePowerChangeRate getLowerRampRate();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getLowerRampRate <em>Lower Ramp Rate</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Lower Ramp Rate</em>' reference.
	 * @see #getLowerRampRate()
	 * @generated
	 */
	void setLowerRampRate(ActivePowerChangeRate value);

	/**
	 * Returns the value of the '<em><b>Max Economic P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Max Economic P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Max Economic P</em>' reference.
	 * @see #setMaxEconomicP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MaxEconomicP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getMaxEconomicP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaxEconomicP <em>Max Economic P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Max Economic P</em>' reference.
	 * @see #getMaxEconomicP()
	 * @generated
	 */
	void setMaxEconomicP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Maximum Allowable Spinning Reserve</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Maximum Allowable Spinning Reserve</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Maximum Allowable Spinning Reserve</em>' reference.
	 * @see #setMaximumAllowableSpinningReserve(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MaximumAllowableSpinningReserve()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getMaximumAllowableSpinningReserve();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaximumAllowableSpinningReserve <em>Maximum Allowable Spinning Reserve</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Maximum Allowable Spinning Reserve</em>' reference.
	 * @see #getMaximumAllowableSpinningReserve()
	 * @generated
	 */
	void setMaximumAllowableSpinningReserve(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Max Operating P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Max Operating P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Max Operating P</em>' reference.
	 * @see #setMaxOperatingP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MaxOperatingP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getMaxOperatingP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMaxOperatingP <em>Max Operating P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Max Operating P</em>' reference.
	 * @see #getMaxOperatingP()
	 * @generated
	 */
	void setMaxOperatingP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Min Economic P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Min Economic P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Min Economic P</em>' reference.
	 * @see #setMinEconomicP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MinEconomicP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getMinEconomicP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinEconomicP <em>Min Economic P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Min Economic P</em>' reference.
	 * @see #getMinEconomicP()
	 * @generated
	 */
	void setMinEconomicP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Minimum Off Time</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Minimum Off Time</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Minimum Off Time</em>' reference.
	 * @see #setMinimumOffTime(Seconds)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MinimumOffTime()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getMinimumOffTime();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinimumOffTime <em>Minimum Off Time</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Minimum Off Time</em>' reference.
	 * @see #getMinimumOffTime()
	 * @generated
	 */
	void setMinimumOffTime(Seconds value);

	/**
	 * Returns the value of the '<em><b>Min Operating P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Min Operating P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Min Operating P</em>' reference.
	 * @see #setMinOperatingP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_MinOperatingP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getMinOperatingP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getMinOperatingP <em>Min Operating P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Min Operating P</em>' reference.
	 * @see #getMinOperatingP()
	 * @generated
	 */
	void setMinOperatingP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Model Detail</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Model Detail</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Model Detail</em>' reference.
	 * @see #setModelDetail(Classification)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ModelDetail()
	 * @model ordered="false"
	 * @generated
	 */
	Classification getModelDetail();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getModelDetail <em>Model Detail</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Model Detail</em>' reference.
	 * @see #getModelDetail()
	 * @generated
	 */
	void setModelDetail(Classification value);

	/**
	 * Returns the value of the '<em><b>Nominal P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nominal P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nominal P</em>' reference.
	 * @see #setNominalP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_NominalP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getNominalP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getNominalP <em>Nominal P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nominal P</em>' reference.
	 * @see #getNominalP()
	 * @generated
	 */
	void setNominalP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Normal PF</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Normal PF</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Normal PF</em>' reference.
	 * @see #setNormalPF(EA_Model.IEC61970.Domain.Float)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_NormalPF()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Float getNormalPF();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getNormalPF <em>Normal PF</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Normal PF</em>' reference.
	 * @see #getNormalPF()
	 * @generated
	 */
	void setNormalPF(EA_Model.IEC61970.Domain.Float value);

	/**
	 * Returns the value of the '<em><b>Penalty Factor</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Penalty Factor</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Penalty Factor</em>' reference.
	 * @see #setPenaltyFactor(EA_Model.IEC61970.Domain.Float)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_PenaltyFactor()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Float getPenaltyFactor();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getPenaltyFactor <em>Penalty Factor</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Penalty Factor</em>' reference.
	 * @see #getPenaltyFactor()
	 * @generated
	 */
	void setPenaltyFactor(EA_Model.IEC61970.Domain.Float value);

	/**
	 * Returns the value of the '<em><b>Raise Ramp Rate</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Raise Ramp Rate</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Raise Ramp Rate</em>' reference.
	 * @see #setRaiseRampRate(ActivePowerChangeRate)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_RaiseRampRate()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePowerChangeRate getRaiseRampRate();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRaiseRampRate <em>Raise Ramp Rate</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Raise Ramp Rate</em>' reference.
	 * @see #getRaiseRampRate()
	 * @generated
	 */
	void setRaiseRampRate(ActivePowerChangeRate value);

	/**
	 * Returns the value of the '<em><b>Rated Gross Max P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rated Gross Max P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rated Gross Max P</em>' reference.
	 * @see #setRatedGrossMaxP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_RatedGrossMaxP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getRatedGrossMaxP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedGrossMaxP <em>Rated Gross Max P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rated Gross Max P</em>' reference.
	 * @see #getRatedGrossMaxP()
	 * @generated
	 */
	void setRatedGrossMaxP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Rated Gross Min P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rated Gross Min P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rated Gross Min P</em>' reference.
	 * @see #setRatedGrossMinP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_RatedGrossMinP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getRatedGrossMinP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedGrossMinP <em>Rated Gross Min P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rated Gross Min P</em>' reference.
	 * @see #getRatedGrossMinP()
	 * @generated
	 */
	void setRatedGrossMinP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Rated Net Max P</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rated Net Max P</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rated Net Max P</em>' reference.
	 * @see #setRatedNetMaxP(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_RatedNetMaxP()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getRatedNetMaxP();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getRatedNetMaxP <em>Rated Net Max P</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rated Net Max P</em>' reference.
	 * @see #getRatedNetMaxP()
	 * @generated
	 */
	void setRatedNetMaxP(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Short PF</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Short PF</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Short PF</em>' reference.
	 * @see #setShortPF(EA_Model.IEC61970.Domain.Float)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_ShortPF()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Float getShortPF();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getShortPF <em>Short PF</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Short PF</em>' reference.
	 * @see #getShortPF()
	 * @generated
	 */
	void setShortPF(EA_Model.IEC61970.Domain.Float value);

	/**
	 * Returns the value of the '<em><b>Spin Reserve Ramp</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Spin Reserve Ramp</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Spin Reserve Ramp</em>' reference.
	 * @see #setSpinReserveRamp(ActivePowerChangeRate)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_SpinReserveRamp()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePowerChangeRate getSpinReserveRamp();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getSpinReserveRamp <em>Spin Reserve Ramp</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Spin Reserve Ramp</em>' reference.
	 * @see #getSpinReserveRamp()
	 * @generated
	 */
	void setSpinReserveRamp(ActivePowerChangeRate value);

	/**
	 * Returns the value of the '<em><b>Startup Cost</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Startup Cost</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Startup Cost</em>' reference.
	 * @see #setStartupCost(Money)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_StartupCost()
	 * @model ordered="false"
	 * @generated
	 */
	Money getStartupCost();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStartupCost <em>Startup Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Startup Cost</em>' reference.
	 * @see #getStartupCost()
	 * @generated
	 */
	void setStartupCost(Money value);

	/**
	 * Returns the value of the '<em><b>Startup Time</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Startup Time</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Startup Time</em>' reference.
	 * @see #setStartupTime(Seconds)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_StartupTime()
	 * @model ordered="false"
	 * @generated
	 */
	Seconds getStartupTime();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStartupTime <em>Startup Time</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Startup Time</em>' reference.
	 * @see #getStartupTime()
	 * @generated
	 */
	void setStartupTime(Seconds value);

	/**
	 * Returns the value of the '<em><b>Step Change</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Step Change</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Step Change</em>' reference.
	 * @see #setStepChange(ActivePower)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_StepChange()
	 * @model ordered="false"
	 * @generated
	 */
	ActivePower getStepChange();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getStepChange <em>Step Change</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Step Change</em>' reference.
	 * @see #getStepChange()
	 * @generated
	 */
	void setStepChange(ActivePower value);

	/**
	 * Returns the value of the '<em><b>Tie Line PF</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Tie Line PF</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Tie Line PF</em>' reference.
	 * @see #setTieLinePF(EA_Model.IEC61970.Domain.Float)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_TieLinePF()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Float getTieLinePF();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getTieLinePF <em>Tie Line PF</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Tie Line PF</em>' reference.
	 * @see #getTieLinePF()
	 * @generated
	 */
	void setTieLinePF(EA_Model.IEC61970.Domain.Float value);

	/**
	 * Returns the value of the '<em><b>Variable Cost</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Variable Cost</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Variable Cost</em>' reference.
	 * @see #setVariableCost(Money)
	 * @see EA_Model.IEC61970.Generation.Production.ProductionPackage#getGeneratingUnit_VariableCost()
	 * @model ordered="false"
	 * @generated
	 */
	Money getVariableCost();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Generation.Production.GeneratingUnit#getVariableCost <em>Variable Cost</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Variable Cost</em>' reference.
	 * @see #getVariableCost()
	 * @generated
	 */
	void setVariableCost(Money value);

} // GeneratingUnit
